andidate 3: expected_value=2700000075024618.5 action_type=ActionType.MOVE_ROBBER
  Candidate 4: expected_value=2700000108357952.0 action_type=ActionType.MOVE_ROBBER
  Candidate 5: expected_value=2700000069468164.0 action_type=ActionType.MOVE_ROBBER
  Candidate 6: expected_value=2700000050024606.5 action_type=ActionType.MOVE_ROBBER
  Candidate 7: expected_value=2700000069469051.0 action_type=ActionType.MOVE_ROBBER
  Candidate 8: expected_value=2700000030580162.0 action_type=ActionType.MOVE_ROBBER
  Candidate 9: expected_value=2700000030580163.0 action_type=ActionType.MOVE_ROBBER
  Candidate 10: expected_value=2700000069468164.0 action_type=ActionType.MOVE_ROBBER
  Candidate 11: expected_value=2700000125024607.5 action_type=ActionType.MOVE_ROBBER
  Candidate 12: expected_value=2700000022246841.0 action_type=ActionType.MOVE_ROBBER
  Candidate 13: expected_value=2700000069469051.0 action_type=ActionType.MOVE_ROBBER
  Candidate 14: expected_value=2700000022246841.0 action_type=ActionType.MOVE_ROBBER
  Candidate 15: expected_value=2700000130580184.0 action_type=ActionType.MOVE_ROBBER
  Candidate 16: expected_value=2700000044469053.0 action_type=ActionType.MOVE_ROBBER
  Candidate 17: expected_value=2700000025024617.5 action_type=ActionType.MOVE_ROBBER
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.MOVE_ROBBER: 'MOVE_ROBBER'>, value=((1, 1, -2), <Color.RED: 'RED'>, None)) score=2700000130580184.0 node_expansions=45
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000130580164.0 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=2700000130580164.0 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000130580182.0 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=2700000130580182.0 node_expansions=5
  Dev Candidate 0: expected_value=2700000130580147.0 action_type=ActionType.BUY_DEVELOPMENT_CARD
FooPlayer.decide: Chosen dev card action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.BUY_DEVELOPMENT_CARD: 'BUY_DEVELOPMENT_CARD'>, value=None) score=2700000130580147.0 node_expansions=2
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000102802370.0 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=2700000102802370.0 node_expansions=7
FooPlayer.decide: Fully evaluating 2 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000047246860.5 action_type=ActionType.PLAY_KNIGHT_CARD
  Candidate 1: expected_value=2700000102802415.5 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=2700000102802415.5 node_expansions=8
  Dev Candidate 0: expected_value=2700000102802405.0 action_type=ActionType.BUY_DEVELOPMENT_CARD
FooPlayer.decide: Chosen dev card action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.BUY_DEVELOPMENT_CARD: 'BUY_DEVELOPMENT_CARD'>, value=None) score=2700000102802405.0 node_expansions=3
FooPlayer.decide: Fully evaluating 2 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000047246851.0 action_type=ActionType.PLAY_KNIGHT_CARD
  Candidate 1: expected_value=2700000102802417.0 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=2700000102802417.0 node_expansions=20
FooPlayer.decide: Fully evaluating 2 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000022245989.5 action_type=ActionType.PLAY_KNIGHT_CARD
  Candidate 1: expected_value=2700000102802424.0 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=2700000102802424.0 node_expansions=8
FooPlayer.decide: Fully evaluating 2 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000022245982.5 action_type=ActionType.PLAY_KNIGHT_CARD
  Candidate 1: expected_value=2700000102802415.0 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=2700000102802415.0 node_expansions=7
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000061135725.0 action_type=ActionType.DISCARD
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.DISCARD: 'DISCARD'>, value=None) score=2700000061135725.0 node_expansions=7
FooPlayer.decide: Fully evaluating 2 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000022245969.0 action_type=ActionType.PLAY_KNIGHT_CARD
  Candidate 1: expected_value=2700000022245969.0 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.PLAY_KNIGHT_CARD: 'PLAY_KNIGHT_CARD'>, value=None) score=2700000022245969.0 node_expansions=11
FooPlayer.decide: prune_robber_actions returned overly aggressive pruning or no meaningful reduction, skipping
FooPlayer.decide: Fully evaluating 18 candidates with lookahead depth=3
  Candidate 0: expected_value=2699999977802412.5 action_type=ActionType.MOVE_ROBBER
  Candidate 1: expected_value=2699999983357972.5 action_type=ActionType.MOVE_ROBBER
  Candidate 2: expected_value=2700000077802394.0 action_type=ActionType.MOVE_ROBBER
  Candidate 3: expected_value=2700000027802414.0 action_type=ActionType.MOVE_ROBBER
  Candidate 4: expected_value=2700000061135748.0 action_type=ActionType.MOVE_ROBBER
  Candidate 5: expected_value=2700000027802414.0 action_type=ActionType.MOVE_ROBBER
  Candidate 6: expected_value=2699999977802412.5 action_type=ActionType.MOVE_ROBBER
  Candidate 7: expected_value=2700000022246860.5 action_type=ActionType.MOVE_ROBBER
  Candidate 8: expected_value=2699999983357958.0 action_type=ActionType.MOVE_ROBBER
  Candidate 9: expected_value=2699999983357958.0 action_type=ActionType.MOVE_ROBBER
  Candidate 10: expected_value=2700000077802418.0 action_type=ActionType.MOVE_ROBBER
  Candidate 11: expected_value=2700000105580205.0 action_type=ActionType.MOVE_ROBBER
  Candidate 12: expected_value=2700000050024640.5 action_type=ActionType.MOVE_ROBBER
  Candidate 13: expected_value=2700000022246859.5 action_type=ActionType.MOVE_ROBBER
  Candidate 14: expected_value=2700000041691305.0 action_type=ActionType.MOVE_ROBBER
  Candidate 15: expected_value=2700000102802403.5 action_type=ActionType.MOVE_ROBBER
  Candidate 16: expected_value=2699999997246848.0 action_type=ActionType.MOVE_ROBBER
  Candidate 17: expected_value=2699999977802415.0 action_type=ActionType.MOVE_ROBBER
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.MOVE_ROBBER: 'MOVE_ROBBER'>, value=((-2, 1, 1), <Color.RED: 'RED'>, None)) score=2700000105580205.0 node_expansions=60
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000105580193.5 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=2700000105580193.5 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000061135750.5 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=2700000061135750.5 node_expansions=3
FooPlayer.decide: Fully evaluating 2 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000022245983.0 action_type=ActionType.PLAY_KNIGHT_CARD
  Candidate 1: expected_value=2700000022245971.5 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.PLAY_KNIGHT_CARD: 'PLAY_KNIGHT_CARD'>, value=None) score=2700000022245983.0 node_expansions=6
FooPlayer.decide: prune_robber_actions returned overly aggressive pruning or no meaningful reduction, skipping
FooPlayer.decide: Fully evaluating 18 candidates with lookahead depth=3
  Candidate 0: expected_value=2699999975027418.5 action_type=ActionType.MOVE_ROBBER
  Candidate 1: expected_value=2699999977805208.5 action_type=ActionType.MOVE_ROBBER
  Candidate 2: expected_value=2699999983360750.5 action_type=ActionType.MOVE_ROBBER
  Candidate 3: expected_value=2700000077805214.5 action_type=ActionType.MOVE_ROBBER
  Candidate 4: expected_value=2700000027805206.5 action_type=ActionType.MOVE_ROBBER
  Candidate 5: expected_value=2700000077804766.0 action_type=ActionType.MOVE_ROBBER
  Candidate 6: expected_value=2700000022248757.5 action_type=ActionType.MOVE_ROBBER
  Candidate 7: expected_value=2700000022247368.5 action_type=ActionType.MOVE_ROBBER
  Candidate 8: expected_value=2700000022246862.0 action_type=ActionType.MOVE_ROBBER
  Candidate 9: expected_value=2700000022248757.5 action_type=ActionType.MOVE_ROBBER
  Candidate 10: expected_value=2700000077804103.0 action_type=ActionType.MOVE_ROBBER
  Candidate 11: expected_value=2700000022248757.5 action_type=ActionType.MOVE_ROBBER
  Candidate 12: expected_value=2700000050027427.0 action_type=ActionType.MOVE_ROBBER
  Candidate 13: expected_value=2700000022249637.5 action_type=ActionType.MOVE_ROBBER
  Candidate 14: expected_value=2700000077805214.5 action_type=ActionType.MOVE_ROBBER
  Candidate 15: expected_value=2700000102805193.0 action_type=ActionType.MOVE_ROBBER
  Candidate 16: expected_value=2700000050025482.5 action_type=ActionType.MOVE_ROBBER
  Candidate 17: expected_value=2700000022248248.5 action_type=ActionType.MOVE_ROBBER
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.MOVE_ROBBER: 'MOVE_ROBBER'>, value=((1, 1, -2), <Color.RED: 'RED'>, None)) score=2700000102805193.0 node_expansions=177
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000022245972.5 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=2700000022245972.5 node_expansions=3
FooPlayer.decide: Infra exists, filtering out maritime trades from global actions, now 14 actions
FooPlayer.decide: Fully evaluating 13 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000102807681.5 action_type=ActionType.BUILD_ROAD
  Candidate 1: expected_value=2700000102806858.0 action_type=ActionType.BUILD_ROAD
  Candidate 2: expected_value=2700000102807681.5 action_type=ActionType.BUILD_ROAD
  Candidate 3: expected_value=2700000102807233.0 action_type=ActionType.BUILD_ROAD
  Candidate 4: expected_value=2700000102807510.5 action_type=ActionType.BUILD_ROAD
  Candidate 5: expected_value=2700000102807510.5 action_type=ActionType.BUILD_ROAD
  Candidate 6: expected_value=2700000102806858.0 action_type=ActionType.BUILD_ROAD
  Candidate 7: expected_value=2700000102806677.5 action_type=ActionType.BUILD_ROAD
  Candidate 8: expected_value=2700000102805010.5 action_type=ActionType.BUILD_ROAD
  Candidate 9: expected_value=2700000102806570.0 action_type=ActionType.BUILD_ROAD
  Candidate 10: expected_value=2700000102806122.0 action_type=ActionType.BUILD_ROAD
  Candidate 11: expected_value=2700000102806014.5 action_type=ActionType.BUILD_ROAD
  Candidate 12: expected_value=2700000102806122.0 action_type=ActionType.BUILD_ROAD
FooPlayer.decide: Chosen infra action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.BUILD_ROAD: 'BUILD_ROAD'>, value=(1, 2)) score=2700000102807681.5 node_expansions=260
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000102805195.0 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=2700000102805195.0 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000061138514.0 action_type=ActionType.DISCARD
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.DISCARD: 'DISCARD'>, value=None) score=2700000061138514.0 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2699999975027404.0 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=2699999975027404.0 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2699999975027431.0 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=2699999975027431.0 node_expansions=4
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2699999975027415.5 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=2699999975027415.5 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2700000061138518.5 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=2700000061138518.5 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2699999977807669.5 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=2699999977807669.5 node_expansions=22
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2699999950027414.5 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=2699999950027414.5 node_expansions=5
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2099999977807695.8 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=2099999977807695.8 node_expansions=113
FooPlayer.decide: Infra exists, filtering out maritime trades from global actions, now 15 actions
FooPlayer.decide: Fully evaluating 14 candidates with lookahead depth=3
  Candidate 0: expected_value=2099999977810865.5 action_type=ActionType.BUILD_ROAD
  Candidate 1: expected_value=2699999977809088.0 action_type=ActionType.BUILD_ROAD
  Candidate 2: expected_value=2699999977809088.0 action_type=ActionType.BUILD_ROAD
  Candidate 3: expected_value=2099999977809369.5 action_type=ActionType.BUILD_ROAD
  Candidate 4: expected_value=2099999977806881.5 action_type=ActionType.BUILD_ROAD
  Candidate 5: expected_value=2099999977809198.8 action_type=ActionType.BUILD_ROAD
  Candidate 6: expected_value=2099999977809198.8 action_type=ActionType.BUILD_ROAD
  Candidate 7: expected_value=2099999977806155.2 action_type=ActionType.BUILD_ROAD
  Candidate 8: expected_value=2099999977808643.2 action_type=ActionType.BUILD_ROAD
  Candidate 9: expected_value=2099999977807704.8 action_type=ActionType.BUILD_ROAD
  Candidate 10: expected_value=2099999977806976.5 action_type=ActionType.BUILD_ROAD
  Candidate 11: expected_value=2099999977807702.8 action_type=ActionType.BUILD_ROAD
  Candidate 12: expected_value=2699999977806699.5 action_type=ActionType.BUILD_ROAD
  Candidate 13: expected_value=2099999977807702.8 action_type=ActionType.BUILD_ROAD
FooPlayer.decide: Chosen infra action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.BUILD_ROAD: 'BUILD_ROAD'>, value=(16, 21)) score=2699999977809088.0 node_expansions=207
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2099999977807523.5 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=2099999977807523.5 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2099999983363081.2 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=2099999983363081.2 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=2099999955585314.5 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=2099999955585314.5 node_expansions=8
Playing 30 games...                                          ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
AlphaBetaPlayer:RED(depth=2,value_fn=base_fn,prunning=False) ━━━━━━━━━━━━━━━━━━━━━━━━━━╸               67%        
FooPlayer:BLUE                                               ━━━━━━━━━━━━━                             33%        
                    Last 10 Games                    
     ╷          ╷       ╷        ╷         ╷         
   # │ SEATING  │ TURNS │ RED VP │ BLUE VP │ WINNER  
╶────┼──────────┼───────┼────────┼─────────┼────────╴
  21 │ BLUE,RED │    73 │     10 │       3 │ RED     
  22 │ RED,BLUE │    83 │      7 │      10 │ BLUE    
  23 │ BLUE,RED │    98 │      6 │      10 │ BLUE    
  24 │ BLUE,RED │    85 │     10 │       3 │ RED     
  25 │ RED,BLUE │    73 │      8 │      10 │ BLUE    
  26 │ BLUE,RED │    94 │      8 │      10 │ BLUE    
  27 │ RED,BLUE │    72 │     10 │       3 │ RED     
  28 │ RED,BLUE │    62 │     10 │       7 │ RED     
  29 │ RED,BLUE │    88 │     10 │       4 │ RED     
  30 │ BLUE,RED │    85 │     10 │       7 │ RED     
     ╵          ╵       ╵        ╵         ╵         
                                                                Player Summary                                                                
                                                               ╷      ╷        ╷             ╷            ╷          ╷          ╷             
                                                               │ WINS │ AVG VP │ AVG SETTLES │ AVG CITIES │ AVG ROAD │ AVG ARMY │ AVG DEV VP  
╶──────────────────────────────────────────────────────────────┼──────┼────────┼─────────────┼────────────┼──────────┼──────────┼────────────╴
  AlphaBetaPlayer:RED(depth=2,value_fn=base_fn,prunning=False) │   20 │   8.70 │        2.63 │       2.30 │     0.70 │     0.00 │       0.07  
  FooPlayer:BLUE                                               │   10 │   6.80 │        2.30 │       0.87 │     0.30 │     0.57 │       1.03  
                                                               ╵      ╵        ╵             ╵            ╵          ╵          ╵             
              Game Summary              
            ╷           ╷               
  AVG TICKS │ AVG TURNS │ AVG DURATION  
╶───────────┼───────────┼──────────────╴
     223.77 │     78.03 │   3.859 secs  
            ╵           ╵